perm filename M11IO.FAI[P11,LCS]1 blob sn#411141 filedate 1979-04-04 generic text, type T, neo UTF8
00100		TITLE M11IO
00200		INTERNAL PUTEXT,EXTOUT,FINEXT,OSC,OUTP,INITIT
00300		EXTERNAL LM,NT,GENS,ROUT,XIN,LOCG,LFUNC,XIN,.COMM.,INS
00400	
00500	
00600		CH3←13
00700		CH←12
00800		CH2←11
00900		BLKS←←=1
01000	
01100	REGS:	BLOCK 20
01200	DIR:	BLOCK 4
01300	
01400	;CALL PUTEXT(<FILE>,<EXT>)
01500	PUTEXT:	0	;USES EXTOUT,FINEXT, CH2
01600		MOVE 0,@0(16)
01700		MOVEM 0,FILNAM
01800		MOVE 0,@1(16)
01900		MOVEM 0,EXTNAM
02000		JSA 16,INTFIL
02100		SETZM DIR+2
02200		SETZM DIR+3
02300		ENTER CH2,DIR
02400		0
02500		JRA 16,2(16)
02600	
02700	;CALL EXTOUT(<ARRAY>,<NO. OF WORDS>)
02800	
02900	EXTOUT:	0
03000		HRRZ 0,0(16)
03100		SUBI 0,1
03200		MOVEM 0,COM
03300		MOVN 0,@1(16)
03400		HRLM 0,COM
03500		OUTPUT CH2,COM
03600		STATZ CH2,740000
03700		0
03800		JRA 16,2(16)
03900	
04000	
04100	INTFIL:	0	;INITS DSK 
04200		MOVEI REGS
04300		BLT REGS+3
04400		INIT CH2,17
04500		SIXBIT/DSK/
04600		0
04700		0
04800	INTF4:	MOVE 0,FILNAM#
04900		MOVEM 0,FN#
05000		MOVE 1,[POINT 7,FN]
05100	INTF3:	MOVE 2,[POINT 6,DIR]
05200		SETZM DIR
05300		MOVEI 3,5
05400	INTF1:	ILDB 0,1
05500		CAIN 0," "
05600		JRST INTF2
05700		SUBI 0,40
05800		IDPB 0,2
05900		SOJG 3,INTF1
06000	INTF2:	HRLZI REGS
06100		BLT 3
06200		MOVE 0,EXTNAM#
06300		MOVEM 0,EX#
06400		MOVE 1,[POINT 7,EX]
06500	EXTF3:	MOVE 2,[POINT 6,DIR+1]
06600		SETZM DIR+1
06700		MOVEI 3,5
06800	EXTF1:	ILDB 0,1
06900		CAIN 0," "
07000		JRST EXTF2
07100		SUBI 0,40
07200		IDPB 0,2
07300		SOJG 3,EXTF1
07400	EXTF2:	HRLZI REGS
07500		BLT 3
07600		JRA 16,0(16)
07700	
07800	
07900	COM:	OCT 0,0
08000	BLKNUM:	0
08100	
08200	;CALL FINEXT
08300	FINEXT:	0
08400		CLOSE CH2,0
08500		STATZ CH2,740000
08600		0
08700		RELEASE CH2,0
08800		JRA 16,0(16)
08900	OSC:	0   ;OSC UNIT GENERATOR
09000		MOVE 2,LM+3		;L4
09100		SKIPE LM+=13	;	IF(M4.EQ.0)L4=LOCG(INT(RNT(L4)))
09200		JRST OSC1
09300		KIFIX 2,NT-1(2)		;RNT(L4)
09400		MOVE 2,LOCG-1(2)	;L4
09500	OSC1:	MOVE 1,LM+4  ;L5
09600		MOVE 15,NT-1(1)  ;SUM
09700		MOVE 12,LM+=10		;M1
09800		MOVE 11,LM+=11		;M2
09900		MOVE 14,XIN		;AMP
10000		MOVE 10,XIN+1		;FREQ
10100	OSC2:	SETZ 4,		;J3
10200	OSC3:	KIFIX 5,15
10300		ADD 5,2   	;+L4  POINTER TO START OF THIS FUNC.
10400		MOVE 13,GENS-1(5)	;F
10500		JUMPG 11,O286
10600		FADR 15,10		;SUM
10700		JRST O290
10800	O286:	MOVE 6,4
10900		ADD 6,LM+1	;J4
11000		FADR 15,ROUT-1(6)	;SUM
11100	O290:	CAML 15,LFUNC+1		;XNFUN
11200		JRST O287
11300	;	JUMPL 15,O289
11400	O288:	MOVE 6,4
11500		ADD 6,LM+2	;J5
11600		JUMPG 12,O292
11700		MOVE 14		;AMP
11800		JRST O293
11900	O287:	FSBR 15,LFUNC+1
12000		JRST O288
12100	;;O289:	FADR 15,LFUNC+=1
12200	;;	JRST O288
12300	O292:	MOVE 7,4
12400		ADD 7,LM
12500		MOVE ROUT-1(7)
12600	O293:	FMPR 13
12700		MOVEM ROUT-1(6)
12800		AOJ 4,
12900		CAMG 4,LM+=20	;NSAMX
13000		JRST OSC3
13100		MOVEM 15,NT-1(1)
13200		JRA 16,(16)
13300	
13400	OUTP:	0
13500		MOVE 2,LM+1
13600		MOVE 4,LM
13700		MOVE 1,2
13800		ADD 1,LM+=20
13900	OU1:	MOVE 3,ROUT-1(4)
14000		FADRM 3,ROUT-1(2)
14100		AOJ 2,
14200		AOJ 4,
14300		CAMG 2,1
14400		JRST OU1
14500		JRA 16,(16)
14600	 
14700	INITIT:	0	;CALL INITIT(J3)	COMMON /LM/L(10),M(10),NSAMX
14800		MOVE 1,.COMM.+5	;I6  COMMON I(1) /P/P(1) /GENS/GENS(1) /LFUNC/LFUNC,XNFUN
14900		ADDI 1,2	;N1    C     COMMON INITIALIZATION OF GENERATORS     
15000		MOVE 2,INS-2(1)			;      N1=I6+2   
15100		SOJ  2,	  ↔	MOVE 5,[=1000]	;	N2=INS(N1-1)-1
15200		MOVE 6,1
15300	I204:	MOVE 3,6			;      DO 204 J1=N1,N2      
15400		AOJ  3,	  ↔	SUB 3,1		;      J2=J1-N1+1  
15500		SKIPL 4,INS-1(6)  ↔	JRST I201	;IF(INS(J1).GE.0)GO TO 201
15600		MOVNM 4,LM-1(3)			; 200  L(J2)=-INS(J1)
15700		MOVEI 0,1  ↔	MOVEM LM+=9(3)	;      M(J2)=1     
15800		JRST J204			;      GO TO 204     
15900	I201:	SETZM LM+=9(3)			; 201  M(J2)=0     
16000		CAMG 5,INS-1(6)  		;	IF(INS(J1)-26262.GT.0)GO TO 203
16100		JRST I203	;C***** WHAT DOES THE BIG NUMBER DO?????
16200		;C*** IT SEEMS TO BE JUST TO MAKE A FLAG. NOW CHANGED TO FIT INTO 16BITS.
16300		ADD 4,.COMM.+2 ↔	SOJ 4,	; 202  L(J2)=INS(J1)+I3-1 
16400	;;;	SKIPA                     	;      GO TO 204     
16500	;;;I203:	SUB 4,5				;203  L(J2)=INS(J1)-26262  
16600	I203:	MOVEM 4,LM-1(3)	 
16700	J204:	CAMGE  6,2 			; 204  CONTINUE    
16800		AOJA 6,I204
16900	      	MOVE 1,INS-3(1)			;      N3=INS(N1-2)  
17000		SUBI 1,=100  ↔	MOVEM 1,@(16) ↔	JRA 16,1(16)  ;      J3= N3 -100     
17100		END